package com.fire.communication.support.model;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.fire.communication.common.utils.Dict;

import java.util.List;
import java.util.Map;

public class PageEntity extends JSONObject {
    @Override
    public void putAll(Map<? extends String, ?> m) {
        super.putAll(m);
    }

    //    private static PageEntity pageEntity = new PageEntity();

    public static PageEntity create(IPage<?> page) {
        PageEntity pageEntity = new PageEntity();
        pageEntity.put("code", 1);
        pageEntity.put("msg", "");
        Dict data = Dict.create();
        data.put("totalSize", page.getTotal());//总条数
        data.put("pageSize", page.getSize());//每页展示多少条
        data.put("currentPage", page.getCurrent());//当前页
        data.put("Items", page.getRecords());//数据
        data.put("pages", page.getPages());//总页数
        data.put("currentSize", page.getRecords().size());//当前页多少条
        pageEntity.put("data", data);
        return pageEntity;
    }

    public static PageEntity create(IPage<?> page, Map<String,Object> additional) {
        PageEntity pageEntity = new PageEntity();
        pageEntity.put("code", 1);
        pageEntity.put("msg", "");
        Dict data = Dict.create();
        data.put("totalSize", page.getTotal());//总条数
        data.put("pageSize", page.getSize());//每页展示多少条
        data.put("currentPage", page.getCurrent());//当前页
        data.put("Items", page.getRecords());//数据
        data.put("pages", page.getPages());//总页数
        data.put("currentSize", page.getRecords().size());//当前页多少条
        data.put("additional", additional);
        if(additional.containsKey("RowSum")){
            data.put("RowSum", additional.get("RowSum"));
        }
        pageEntity.put("data", data);
        return pageEntity;
    }

    public static PageEntity create(IPage<?> page, Map<String,Object> additional, List<?> dynamicCol) {
        PageEntity pageEntity = new PageEntity();
        pageEntity.put("code", 1);
        pageEntity.put("msg", "");
        Dict data = Dict.create();
        data.put("totalSize", page.getTotal());//总条数
        data.put("pageSize", page.getSize());//每页展示多少条
        data.put("currentPage", page.getCurrent());//当前页
        data.put("Items", page.getRecords());//数据
        data.put("pages", page.getPages());//总页数
        data.put("currentSize", page.getRecords().size());//当前页多少条
        data.put("additional", additional);
        if(additional.containsKey("RowSum")){
            data.put("RowSum", additional.get("RowSum"));
        }
        data.put("dynamicCol", dynamicCol);
        pageEntity.put("data", data);
        return pageEntity;
    }



    public static PageEntity create(List<?> data) {
        PageEntity pageEntity = new PageEntity();
        pageEntity.put("code", 1);
        pageEntity.put("msg", "");
        Dict dict = Dict.create();
        dict.put("TotalSize", data.size());
        dict.put("pageSize", data.size());
        dict.put("Items", data);
        pageEntity.put("data", dict);
        return pageEntity;
    }

    public static PageEntity time() {
        PageEntity pageEntity = new PageEntity();
        pageEntity.put("time","ok");
        return pageEntity;
    }


}